Vector Algebra using SIMD instructions
Goal of this excercise is to learn how to implement and use 3- and
4-dimensional Vector Algebra using SIMD instructions
- Implement scalar product (invariant mass) between two Lorentz
vectors
- Implement Lorenz boost transformation
- Measure speed-up
Code
in include:
SSEVec.h
SSERot.h
in examples:
SSEVec_t.cpp
Hints
pfmon --long-smpl-period=5000 --resolve-addresses --smpl-per-function --smpl-show-top=20 ./a.out
pfmon -e UNHALTED_CORE_CYCLES,ARITH:CYCLES_DIV_BUSY,SSEX_UOPS_RETIRED:SCALAR_SINGLE,SSEX_UOPS_RETIRED:PACKED_SINGLE ./a.out k
References
Compiler
intrinsics ( by Visual Studio 2010)
Lorentz
boost in Root::Math